package com.hanamaki.study.utils.jdbc;

import com.mysql.cj.jdbc.Driver;

import java.sql.*;
import java.util.Properties;

public class JDBCDemo {

    /* 连接数据库的步骤  ？*/
    /**
     * 1. 加载jar包
     * 从网络下载对应数据库的版本的 jar
     * 2. 初始化 加载 驱动
     */
    static ResultSet resultSet;
    static Connection connection;
    static Statement statement;

    public static void main(String[] args) {

        /* 加载驱动 */  /* alt + enter */
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (Exception e) {
            System.out.println("类的初始化失败！");
        }

        /* 3. 配置连接数据库的信息 */
        String url = "jdbc:mysql://127.0.0.1:3306/mysources?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
        String username = "root";
        String password = "root";

        /* 4. 连接数据库 */
        try {
            /* connection 代表数据库对象 */
            connection = DriverManager.getConnection(url, username, password);
            /* statement 代表的是  数据库的查询对象 可以执行  sql语句 */
            statement = connection.createStatement();

            /* 编写 sql语句 */
            String sql = "select first_par,second_par,exp_par from num";

            /* 通过 statement 来执行 sql查询 */
            resultSet = statement.executeQuery(sql);

            /* 通过 遍历结果集对象 来得到 结果数据 */
            /* 如果有值就遍历 */
            while (resultSet.next()) {
                String first_par = resultSet.getString("first_par");
                System.out.println(first_par);
            }

        } catch (SQLException throwables) {
            System.out.println("数据库连接异常！");
        }finally {

            try {
                resultSet.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }

            try {
                statement.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }

            try {
                connection.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }

        }

    }

}
